home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / nss / asn1t.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  7KB  |  170 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is the Netscape security libraries.
  15.  *
  16.  * The Initial Developer of the Original Code is
  17.  * Netscape Communications Corporation.
  18.  * Portions created by the Initial Developer are Copyright (C) 1994-2000
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *
  23.  * Alternatively, the contents of this file may be used under the terms of
  24.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  25.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  26.  * in which case the provisions of the GPL or the LGPL are applicable instead
  27.  * of those above. If you wish to allow use of your version of this file only
  28.  * under the terms of either the GPL or the LGPL, and not to allow others to
  29.  * use your version of this file under the terms of the MPL, indicate your
  30.  * decision by deleting the provisions above and replace them with the notice
  31.  * and other provisions required by the GPL or the LGPL. If you do not delete
  32.  * the provisions above, a recipient may use your version of this file under
  33.  * the terms of any one of the MPL, the GPL or the LGPL.
  34.  *
  35.  * ***** END LICENSE BLOCK ***** */
  36.  
  37. #ifndef ASN1T_H
  38. #define ASN1T_H
  39.  
  40. #ifdef DEBUG
  41. static const char ASN1T_CVS_ID[] = "@(#) $RCSfile: asn1t.h,v $ $Revision: 1.4 $ $Date: 2005/01/20 02:25:44 $";
  42. #endif /* DEBUG */
  43.  
  44. /*
  45.  * asn1t.h
  46.  *
  47.  * This file contains the ASN.1 encoder/decoder types available 
  48.  * internally within NSS.  It's not clear right now if this file
  49.  * will be folded into baset.h or something, I just needed to
  50.  * get this going.  At the moment, these types are wrappers for
  51.  * the old types.
  52.  */
  53.  
  54. #ifndef BASET_H
  55. #include "baset.h"
  56. #endif /* BASET_H */
  57.  
  58. #ifndef NSSASN1T_H
  59. #include "nssasn1t.h"
  60. #endif /* NSSASN1T_H */
  61.  
  62. #include "seccomon.h"
  63. #include "secasn1t.h"
  64.  
  65. PR_BEGIN_EXTERN_C
  66.  
  67. /*
  68.  * XXX fgmr
  69.  *
  70.  * This sort of bites.  Let's keep an eye on this, to make sure
  71.  * we aren't stuck with it forever.
  72.  */
  73.  
  74. struct nssASN1ItemStr {
  75.   PRUint32 reserved;
  76.   PRUint8 *data;
  77.   PRUint32 size;
  78. };
  79.  
  80. typedef struct nssASN1ItemStr nssASN1Item;
  81.  
  82. /*
  83.  * I'm not documenting these here, since this'll require another
  84.  * pass anyway.
  85.  */
  86.  
  87. typedef SEC_ASN1Template nssASN1Template;
  88.  
  89. #define nssASN1_TAG_MASK               SEC_ASN1_TAG_MASK
  90.  
  91. #define nssASN1_TAGNUM_MASK            SEC_ASN1_TAGNUM_MASK
  92. #define nssASN1_BOOLEAN                SEC_ASN1_BOOLEAN
  93. #define nssASN1_INTEGER                SEC_ASN1_INTEGER
  94. #define nssASN1_BIT_STRING             SEC_ASN1_BIT_STRING
  95. #define nssASN1_OCTET_STRING           SEC_ASN1_OCTET_STRING
  96. #define nssASN1_NULL                   SEC_ASN1_NULL
  97. #define nssASN1_OBJECT_ID              SEC_ASN1_OBJECT_ID
  98. #define nssASN1_OBJECT_DESCRIPTOR      SEC_ASN1_OBJECT_DESCRIPTOR
  99. /* External type and instance-of type   0x08 */
  100. #define nssASN1_REAL                   SEC_ASN1_REAL
  101. #define nssASN1_ENUMERATED             SEC_ASN1_ENUMERATED
  102. #define nssASN1_EMBEDDED_PDV           SEC_ASN1_EMBEDDED_PDV
  103. #define nssASN1_UTF8_STRING            SEC_ASN1_UTF8_STRING
  104. #define nssASN1_SEQUENCE               SEC_ASN1_SEQUENCE
  105. #define nssASN1_SET                    SEC_ASN1_SET
  106. #define nssASN1_NUMERIC_STRING         SEC_ASN1_NUMERIC_STRING
  107. #define nssASN1_PRINTABLE_STRING       SEC_ASN1_PRINTABLE_STRING
  108. #define nssASN1_T61_STRING             SEC_ASN1_T61_STRING
  109. #define nssASN1_TELETEX_STRING         nssASN1_T61_STRING
  110. #define nssASN1_VIDEOTEX_STRING        SEC_ASN1_VIDEOTEX_STRING
  111. #define nssASN1_IA5_STRING             SEC_ASN1_IA5_STRING
  112. #define nssASN1_UTC_TIME               SEC_ASN1_UTC_TIME
  113. #define nssASN1_GENERALIZED_TIME       SEC_ASN1_GENERALIZED_TIME
  114. #define nssASN1_GRAPHIC_STRING         SEC_ASN1_GRAPHIC_STRING
  115. #define nssASN1_VISIBLE_STRING         SEC_ASN1_VISIBLE_STRING
  116. #define nssASN1_GENERAL_STRING         SEC_ASN1_GENERAL_STRING
  117. #define nssASN1_UNIVERSAL_STRING       SEC_ASN1_UNIVERSAL_STRING
  118. /*                                      0x1d */
  119. #define nssASN1_BMP_STRING             SEC_ASN1_BMP_STRING
  120. #define nssASN1_HIGH_TAG_NUMBER        SEC_ASN1_HIGH_TAG_NUMBER
  121.  
  122. #define nssASN1_METHOD_MASK            SEC_ASN1_METHOD_MASK
  123. #define nssASN1_PRIMITIVE              SEC_ASN1_PRIMITIVE
  124. #define nssASN1_CONSTRUCTED            SEC_ASN1_CONSTRUCTED
  125.                                                                 
  126. #define nssASN1_CLASS_MASK             SEC_ASN1_CLASS_MASK
  127. #define nssASN1_UNIVERSAL              SEC_ASN1_UNIVERSAL
  128. #define nssASN1_APPLICATION            SEC_ASN1_APPLICATION
  129. #define nssASN1_CONTEXT_SPECIFIC       SEC_ASN1_CONTEXT_SPECIFIC
  130. #define nssASN1_PRIVATE                SEC_ASN1_PRIVATE
  131.  
  132. #define nssASN1_OPTIONAL               SEC_ASN1_OPTIONAL 
  133. #define nssASN1_EXPLICIT               SEC_ASN1_EXPLICIT 
  134. #define nssASN1_ANY                    SEC_ASN1_ANY      
  135. #define nssASN1_INLINE                 SEC_ASN1_INLINE   
  136. #define nssASN1_POINTER                SEC_ASN1_POINTER  
  137. #define nssASN1_GROUP                  SEC_ASN1_GROUP    
  138. #define nssASN1_DYNAMIC                SEC_ASN1_DYNAMIC  
  139. #define nssASN1_SKIP                   SEC_ASN1_SKIP     
  140. #define nssASN1_INNER                  SEC_ASN1_INNER    
  141. #define nssASN1_SAVE                   SEC_ASN1_SAVE     
  142. #define nssASN1_MAY_STREAM             SEC_ASN1_MAY_STREAM
  143. #define nssASN1_SKIP_REST              SEC_ASN1_SKIP_REST
  144. #define nssASN1_CHOICE                 SEC_ASN1_CHOICE
  145.  
  146. #define nssASN1_SEQUENCE_OF            SEC_ASN1_SEQUENCE_OF 
  147. #define nssASN1_SET_OF                 SEC_ASN1_SET_OF      
  148. #define nssASN1_ANY_CONTENTS           SEC_ASN1_ANY_CONTENTS
  149.  
  150. typedef SEC_ASN1TemplateChooserPtr nssASN1ChooseTemplateFunction;
  151.  
  152. typedef SEC_ASN1DecoderContext nssASN1Decoder;
  153. typedef SEC_ASN1EncoderContext nssASN1Encoder;
  154.  
  155. typedef enum {
  156.   nssASN1EncodingPartIdentifier    = SEC_ASN1_Identifier,
  157.   nssASN1EncodingPartLength        = SEC_ASN1_Length,
  158.   nssASN1EncodingPartContents      = SEC_ASN1_Contents,
  159.   nssASN1EncodingPartEndOfContents = SEC_ASN1_EndOfContents
  160. } nssASN1EncodingPart;
  161.  
  162. typedef SEC_ASN1NotifyProc nssASN1NotifyFunction;
  163.  
  164. typedef SEC_ASN1WriteProc nssASN1EncoderWriteFunction;
  165. typedef SEC_ASN1WriteProc nssASN1DecoderFilterFunction;
  166.  
  167. PR_END_EXTERN_C
  168.  
  169. #endif /* ASN1T_H */
  170.